package com.youlu.campus.service.qa;

import com.youlu.campus.entity.ActivityQaInfo;
import com.youlu.campus.entity.ActivityQuestionInfo;
import com.youlu.campus.entity.VO.req.ActivityQaInfoQueryVO;
import com.youlu.campus.entity.VO.req.ActivityQaQuestionQueryVO;
import com.youlu.campus.entity.VO.req.QaInfoReq;
import com.youlu.campus.entity.VO.req.QaQuestionImportVO;
import com.youlu.campus.entity.english.vo.response.UserQaInfoResponse;
import org.springframework.data.domain.Page;

import java.util.List;

public interface ActivityQaInfoService {

    void questionImport(String userId, String activityQaInfoId,
                        List<QaQuestionImportVO> qaQuestionImportList);
    /**
     * 列表
     *
     * @param req
     * @return
     */
    Page<ActivityQaInfo> list(ActivityQaInfoQueryVO req);

    /**
     * 创建
     *
     * @param req
     * @return
     */
    boolean create(ActivityQaInfo req);

    /**
     * 修改
     *
     * @param req
     * @return
     */
    boolean update(ActivityQaInfo req);

    /**
     * 删除
     *
     * @param tenantId
     * @param id
     * @return
     */
    boolean delete(String tenantId, String id);

    /**
     * 获取详情
     */
    ActivityQaInfo findOne(String id);

    /**
     * 问题列表
     *
     * @param req
     * @return
     */
    Page<ActivityQuestionInfo> listQuestion(ActivityQaQuestionQueryVO req);

    /**
     * 新增问题
     *
     * @param req
     * @return
     */
    boolean createQuestion(ActivityQuestionInfo req);

    /**
     * 修改问题
     *
     * @param req
     * @return
     */
    boolean updateQuestion(ActivityQuestionInfo req);

    /**
     * 删除问题
     *
     * @param
     * @return
     */
    boolean deleteQuestion(String tenantId, String id);

    /**
     * 查询问题
     * @param tenantId
     * @param id
     * @return
     */
    ActivityQuestionInfo findOneQuestion(String tenantId, String id);

    List<ActivityQaInfo> findByActivityId(String activityId);

    /**
     * 根据活动ID、题号获取答题信息
     * @param activityId
     * @param qaNumber
     * @return
     */
    ActivityQaInfo findByActivityIdAndQaNumber(String activityId,Integer qaNumber);

    /**
     * 查询题库信息
     * @param qaInfoReq
     * @return
     */
    UserQaInfoResponse getQaInfo(QaInfoReq qaInfoReq);

    /**
     * 查询题库信息-H5-plus
     * @param qaInfoReq
     * @return
     */
    UserQaInfoResponse getH5PlusQaInfo(QaInfoReq qaInfoReq);


    ActivityQaInfo  findById(String qaInfoId);

    /**
     * 复制题库信息
     * @param copySourceActivityId 复制来源活动ID
     * @param newTargetActivityId 新活动ID
     * @param activityName 活动名称
     */
    void doCopyQaInfo(String copySourceActivityId,String newTargetActivityId,String activityName);

}
